clear all;clc
% 生成随机散点数据
num_points = 10;
x = randn(num_points, 1) * 5; % X 坐标
y = randn(num_points, 1) * 5; % Y 坐标
z = randn(num_points, 1) * 5; % Z 坐标

% 设定箭头方向（固定方向，例如 (1,1,1)）
theta = pi / 4; % 水平方向角度 (45°)
phi = pi / 6;   % 垂直方向角度 (30°)
u = cos(theta) * cos(phi) * ones(num_points, 1); % X 方向分量
v = sin(theta) * cos(phi) * ones(num_points, 1); % Y 方向分量
w = sin(phi) * ones(num_points, 1);             % Z 方向分量

% 绘制三维散点图
figure;
scatter3(x, y, z, 50, 'filled');
hold on;

% 绘制箭头：以散点为原点，朝指定方向 (u, v, w)
quiver3(x, y, z, u, v, w, 0, 'r', 'LineWidth', 1.5, 'MaxHeadSize', 0.5);

% 设置坐标轴
axis equal;
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('3D 散点图并带有指定方向的箭头');
view(3); % 设置为 3D 视角

hold off;
